package com.sheng.project.test;

import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author liusheng
 * @date 2022/09/27
 */

public class CreateMap {

    private static Map<String,String> map;
    static {
//		按照存入顺序的Map
        map = new LinkedHashMap();
        map.put("key1", "value1");
        map.put("key3", "value3");
        map.put("key2", "value2");
    }

    public static void main(String[] args) {
        CreateMap cm = new CreateMap();
        map.put("test", "test");
        // java中提供了很多方法都可以实现对一个Map的复制，但是那些方法不见得会时时同步。
        // 简单说，就是一个Map发生的变化，而复制的那个依然保持原样。下面是一个比较高效的实现方法
//        Map<String,String> copiedMap = Collections.synchronizedMap(map);
        cm.setUnmodifiable();
//        copiedMap.put("test2", "test2");//不会报错

        map.put("test2", "test2");//报错
    }

    public void setUnmodifiable(){
//		进制修改，修改会抛出UnsupportedOperationException异常来禁止修改。
        map = Collections.unmodifiableMap(map);
    }
}
